开始之前:

1. 追踪物体输出相关数据

当HUSKYLENS 2检测到可追踪的目标物体时,可获取相关追踪数据。可以获取的数据有:物体的ID、名称、xy坐标、宽度、高度。

示例程序如下。

#  -*- coding: UTF-8 -*-

# MindPlus
# Python
from unihiker import GUI
from pinpong.board import Board
from dfrobot_huskylensv2 import *


u_gui=GUI()
Board().begin()
huskylens = HuskylensV2_I2C()
huskylens.knock()
huskylens.switchAlgorithm(ALGORITHM_OBJECT_TRACKING)
line1=u_gui.draw_text(text="物体ID:",x=0,y=0,font_size=18, color="#0000FF")
line2=u_gui.draw_text(text="物体名称:",x=0,y=40,font_size=18, color="#0000FF")
line3=u_gui.draw_text(text="物体坐标:",x=0,y=80,font_size=18, color="#0000FF")
line4=u_gui.draw_text(text="物体宽高:",x=0,y=120,font_size=18, color="#0000FF")
while True:
    huskylens.getResult(ALGORITHM_OBJECT_TRACKING)
    if (huskylens.available(ALGORITHM_OBJECT_TRACKING)):
        line1.config(text=(str("物体ID:") + str((huskylens.getCachedCenterResult(ALGORITHM_OBJECT_TRACKING).ID if huskylens.getCachedCenterResult(ALGORITHM_OBJECT_TRACKING) else -1))))
        line2.config(text=(str("物体名称:") + str((huskylens.getCachedCenterResult(ALGORITHM_OBJECT_TRACKING).name if huskylens.getCachedCenterResult(ALGORITHM_OBJECT_TRACKING) else -1))))
        line3.config(text=(str("物体坐标:") + str((str((huskylens.getCachedCenterResult(ALGORITHM_OBJECT_TRACKING).xCenter if huskylens.getCachedCenterResult(ALGORITHM_OBJECT_TRACKING) else -1)) + str((str(",") + str((huskylens.getCachedCenterResult(ALGORITHM_OBJECT_TRACKING).yCenter if huskylens.getCachedCenterResult(ALGORITHM_OBJECT_TRACKING) else -1))))))))
        line4.config(text=(str("物体宽高:") + str((str((huskylens.getCachedCenterResult(ALGORITHM_OBJECT_TRACKING).width if huskylens.getCachedCenterResult(ALGORITHM_OBJECT_TRACKING) else -1)) + str((str(",") + str((huskylens.getCachedCenterResult(ALGORITHM_OBJECT_TRACKING).height if huskylens.getCachedCenterResult(ALGORITHM_OBJECT_TRACKING) else -1))))))))

在Mind+中点击运行,等待程序上传完成后。

将HUSKYLENS 2摄像头对准要追踪的物体(追踪物体须先框选目标,详见二哈识图 2 物体追踪功能说明

框选完成后,对准要追踪的目标物体,可观察输出结果。

**运行结果:**可输出追踪到的物体ID、名称、xy坐标、宽度、高度。物体名称默认为"物体" 。

Interface Diagram